package com.zhangshanfeng;

import java.util.ArrayList;
import java.util.Collection;

/*
### 1.3Collection 集合概述和使用【应用】

+ Collection集合概述

  + 是单例集合的顶层接口,它表示一组对象,这些对象也称为Collection的元素
  + JDK 不提供此接口的任何直接实现.它提供更具体的子接口(如Set和List)实现

+ 创建Collection集合的对象

  + 多态的方式
  + 具体的实现类ArrayList

+ Collection集合常用方法

  | 方法名                     | 说明                               |
  | :------------------------- | :--------------------------------- |
  | boolean add(E e)           | 添加元素                           |
  | boolean remove(Object o)   | 从集合中移除指定的元素             |
  | boolean removeIf(Object o) | 根据条件进行移除                   |
  | void   clear()             | 清空集合中的元素                   |
  | boolean contains(Object o) | 判断集合中是否存在指定的元素       |
  | boolean isEmpty()          | 判断集合是否为空                   |
  | int   size()               | 集合的长度，也就是集合中元素的个数 |


 */
public class CollectionDemo01 {
    public static void main(String[] args) {
        Collection<Integer> list = new ArrayList<>();
        add(list);

        //普通删除
        removeMethod(list);

        //根据条件删除
        //        boolean removeif(Object o)	根据条件进行删除
        //removeif底层会遍历集合,得到集合中的每一个元素
        //s依次表示集合中的每一个元素

        //就会把这每一个元素都到lambda表达式中去判断一下

        //如果返回的是true,则删除
        //如果返回的是false,则保留不删除.
        removeIfPlus(list);


        //清空
       /* list.clear();
        System.out.println(list);*/

       //是否存在指定的元素
        view(list);


        //判断集合是否为空
        isEmptyMe(list);

        //集合的长度
        int size = list.size();
        System.out.println(list);


    }

    private static void isEmptyMe(Collection<Integer> list) {
        boolean empty = list.isEmpty();
        System.out.println(empty);
    }

    private static void view(Collection<Integer> list) {
        boolean contains = list.contains(4);
        System.out.println(contains);
    }

    private static void removeIfPlus(Collection<Integer> list) {
        list.removeIf((s)->{
            return s <= 2;
        });
        System.out.println(list);
    }

    private static void removeMethod(Collection<Integer> list) {
        list.remove(4);
        System.out.println(list);
    }

    private static void add(Collection<Integer> list) {
        list.add(1);
        list.add(2);
        list.add(3);
        list.add(4);
    }


}
